XLAアプリケーションがトランザクション・ログからの読取りを終了した場合は、XLA接続をクローズして不要なブックマークを削除し、明示的にサブスクライブした表をサブスクライブ解除して、正常に終了する必要があります。
XLAへの接続をクローズするには、Connectionオブジェクトでcloseをコールします。
接続がクローズされた後、その接続、セッションまたはサブスクライバを使用しようとすると、IllegalStateExceptionがスローされます。その接続から受信したメッセージを継続して使用できますが、接続がクローズされた後、受信したメッセージのacknowledgeメソッドをコールすることはできません。
停止時にXLAブックマークを削除するかどうかは、任意に選択できます。ブックマークを削除すると、トランザクション・ログ内の未読の更新レコードに関連するディスク領域を解放できます。
ブックマークを削除しない場合は、永続サブスクライバで再利用できます。永続サブスクライバが再接続するときにブックマークが使用可能な場合、サブスクライバは、以前の接続が終了した後に発行されたすべての未確認の更新を受信します。ブックマークが存在しており、そのブックマークから読取りを行っているアプリケーションがない場合は、トランザクション・ログのサイズが継続して大きくなり、データベースによって消費されるディスク領域が増加します。
ブックマークを削除するには、JMS Sessionでunsubscribeをコールします。これにより、ttXlaDeleteBookmark組込みプロシージャが起動され、XLAブックマークが削除されます。
表に対するXLAパブリッシングをオフにするには、ttXlaUnsubscribe組込みプロシージャを使用します。ttXlaSubscribeを使用して表に対するXLAパブリッシングを有効にする場合は、アプリケーションを停止するときにttXlaUnsubscribeを使用して表からのサブスクライブ解除を行う必要があります。
表からのサブスクライブ解除を行う場合は、次のように表を追跡するときに使用される表の名前とブックマークの名前を指定します。
ttXlaUnsubscribe(user.table, bookmark)たとえば、JDBC CallableStatementインタフェースを介してttXlaSubscribeをコールするには、次のようにします。
Connection con; CallableStatement cStmt; ... cStmt = con.prepareCall("{ttXlaUnSubscribe(user.table, bookmark)}"); cStmt.execute(); For more information about using TimesTen built-in procedures in a Java application, see "Calling TimesTen built-in procedures" in Chapter 2 of the TimesTen Java Developer's and Reference Guide. See the TimesTen API and SQL Reference Guide for more information about the built-in procedures themselves.